
要使用LLVM，开发系统应该运行一个通用的操作系统，如Linux、FreeBSD、macOS或Windows。可以在不同的模式下构建LLVM和clang，启用调试符号的构建最多需要30 GB的空间。所需的磁盘空间在很大程度上取决于所选择的构建选项。例如，在发布模式下仅构建LLVM核心库，只针对一个平台，需要最少2 GB的可用磁盘空间。

为了减少编译时间，快速的CPU(例如：时钟速度为2.5 GHz的四核CPU)和快速的SSD也很有帮助。甚至可以在小型设备(如Raspberry Pi)上构建LLVM——需要花费很多时间。本书中的示例是在一台笔记本电脑上开发的，该笔记本电脑采用Intel四核CPU，时钟速度为2.7 GHz，具有40GB RAM和2.5TB SSD磁盘空间。

您的开发系统必须安装一些必备软件，来回顾一下这些软件包的最低要求版本。

要从GitHub查看源代码，需要Git(\url{https://git-scm.com/})。GitHub帮助页面建议至少使用1.17.10版本。由于过去发现的已知安全问题，建议使用最新的可用版本，在撰写本文时为2.39.1。

LLVM项目使用CMake(\url{https://cmake.org/})作为构建文件生成器，至少为3.20.0。CMake可以为各种构建系统生成构建文件。本书中，使用了Ninja(\url{https://ninja-build.org/})，因为它速度快，并且可以在所有平台上使用，建议使用最新版本1.11.1。

显然，还需要一个C/C++编译器。LLVM项目是基于C++17标准，用现代C++编写的。需要一个兼容的编译器和标准库。以下编译器可以与LLVM 17一起工作(已测试):

\begin{itemize}
\item
gcc 7.1.0或更高版本

\item
clang 5.0或更高版本

\item
Apple clang 10.0或更高版本

\item
Visual Studio 2019 16.7或更高版本
\end{itemize}

\begin{myTip}{Tip}
随着LLVM项目的进一步发展，编译器的需求很可能会发生变化。一般来说，应该使用系统可用的最新编译器版本。
\end{myTip}

Python(\url{https://python.org/})用于生成构建文件和运行测试套件，至少为3.8。

虽然本书没有涉及，但可能需要使用Make，而非Ninja，所以需要使用GNU Make(\url{https://www.gnu.org/software/make/})3.79或更高版本。这两种构建工具的用法非常相似。对于下面描述的场景，将每个命令中的ninja替换为make就可以了。

LLVM还依赖于zlib库(\url{https://www.zlib.net/})，至少为1.2.3.4版本。与往常一样，建议使用最新版本1.2.13。

要安装必备软件，最简单的方法是从操作系统中使用包管理器。下面几节中，将为主流操作系统显示安装软件所需的命令。

\mySubsubsection{1.2.1.}{Ubuntu}

Ubuntu 22.04使用apt包管理器。大多数基本的工具都已经安装好了，只缺少开发工具。要一次安装所有软件包，可以输入以下命令:

\begin{shell}
$ sudo apt -y install gcc g++ git cmake ninja-build zlib1g-dev
\end{shell}

\mySubsubsection{1.2.2.}{Fedora和RedHat}

Fedora 37和RedHat Enterprise Linux 9的包管理器名为dnf。和Ubuntu一样，大多数基本的工具都已经安装好了。要一次安装所有软件包，可以输入以下命令:

\begin{shell}
$ sudo dnf –y install gcc gcc-c++ git cmake ninja-build zlib-devel
\end{shell}

\mySubsubsection{1.2.3.}{FreeBSD}

在FreeBSD 13或更高版本上，必须使用pkg包管理器。FreeBSD与基于linux的系统的不同之处在于已经安装了clang编译器。要一次安装所有其他软件包，可以输入以下命令:

\begin{shell}
$ sudo pkg install –y git cmake ninja zlib-ng
\end{shell}

\mySubsubsection{1.2.4.}{OS X}

在OS X上开发，最好从Apple商店安装Xcode。虽然本书中没有使用Xcode IDE，但它附带了所需的C/C++编译器和相关工具。对于其他工具的安装，可以使用包管理器Homebrew(\url{https://brew.sh/})。要一次安装所有软件包，可以输入以下命令:

\begin{shell}
$ brew install git cmake ninja zlib
\end{shell}

\mySubsubsection{1.2.5.}{Windows}

和OS X一样，Windows没有包管理器。对于C/C++编译器，需要下载个人免费使用的Visual Studio Community 2022(\url{https://visualstudio.microsoft.com/vs/community/})。请确保安装了名为Desktop Development with C++的工作负载。可以使用包管理器Scoop(\url{https://scoop.sh/})来安装其他包。按照网站上的描述安装Scoop之后，从Windows菜单中打开VS 2022的x64 Native Tools Command Prompt。要安装所需的软件包，输入以下命令:

\begin{shell}
$ scoop install git cmake ninja python gzip bzip2 coreutils
$ scoop bucket add extras
$ scoop install zlib
\end{shell}

请密切关注Scoop的输出。对于Python和zlib包，建议添加一些注册表项。其他软件需要这些条目才能找到这些软件包。要添加注册表项，最好复制并粘贴来自Scoop的输出，如下所示:

\begin{shell}
$ %HOMEPATH%\scoop\apps\python\current\install-pep-514.reg
$ %HOMEPATH%\scoop\apps\zlib\current\register.reg
\end{shell}

每个命令之后，注册表编辑器将弹出一个消息窗口，询问是否真的要导入这些注册表项，需要单击Yes以完成导入。现在，已经安装了所有所需的工具。

对于本书中的所有示例，必须在VS 2022中使用x64本机工具命令提示符。使用此命令提示符，编译器将自动添加到搜索路径中。

\begin{myTip}{Tip}
LLVM代码库非常大。为了方便地导航源代码，建议使用一个IDE，可以跳转到类的定义，并搜索源代码。我们发现Visual Studio Code(\url{https://code.visualstudio.com/download})是一个可扩展的跨平台IDE，使用起来非常舒服，但这不是运行本书示例的必要条件。
\end{myTip}
